Nguyên lý thiết kế Giao thức và kiến trúc của Hệ thống X Window

Bob ScheiflerJim Gettys đặt ra các nguyên lý ban sơ của X như sau (liệt kê trong Scheifler/Gettys năm 1996):

  • Không nên thêm tính năng mới vào, trừ phi người thực hiện không thể hoàn tất một ứng dụng nào đấy nếu không có tính năng đó.
  • Việc quyết định hệ thống là gì, và sẽ hoạt động như thế nào, cũng quan trọng như việc quyết định hệ thống không phải như thế này, hoặc thế kia. Chớ có tham vọng phục vụ cho toàn bộ tất cả những nhu cầu ở trên thế giới, song nên tạo cho hệ thống có khả năng khuếch trương, hầu cho những nhu cầu mới cũng có thể được thỏa mãn, thích ứng theo chiều hướng tăng trưởng.
  • Việc tổng quát hóa từ chỉ một ví dụ đã là rất tồi tệ rồi, nhưng tổng quá hóa trong khi không có một ví dụ nào để dựa vào còn tồi tệ hơn thế nữa.
  • Nếu không thể thâu tóm được vấn đề một cách trọn vẹn, thì tốt nhất đừng nên đưa ra một giải pháp nào hết."
  • Nếu mình có một giải pháp có thể đạt được 90% kết quả mong muốn mà chỉ mất có 10% sức lực, thì mình nên dùng phương pháp đơn giản đó." (Xin xem thêm Tồi tệ hơn nhưng lại tốt hơn)
  • Cô lập những phức tạp rối rắm, càng nhiều càng tốt"
  • Việc đưa ra một cơ chế giải pháp, tốt hơn là việc đưa ra một qui chế. Cụ thể, chúng ta nên đặt các qui chế về giao diện người dùng, trong tay của trình ứng dụng."

Trong thời gian thiết kế X, nguyên lý đầu tiên được điều chỉnh, và trở nên: Không nên bổ sung tính năng mới, trừ phi mình biết cụ thể một ứng dụng nào đó đòi hỏi tính năng mới này. Từ đó trở đi, X giữ vững các nguyên lý của mình, hầu như không thay đổi. Việc thực thi có tính tham khảo được phát triển với một tầm nhìn hướng tới sự mở rộng và cải thiện những thực thi đã được hoàn thành, trong khi gìn giữ nguyên vẹn tính tương thích đối với giao thức nguyên thủy từ năm 1987.